import { ElMessage } from 'element-plus'
import { useUserStore } from './apis/stores/user'
import router from './router'

const WHITE_LIST = ['/login', '/404']

// 路由导航守卫
router.beforeEach((to, from, next) => {
  // 非vue组件获取store 在使用前才获取，避免pinia 还没创建完成
  const store = useUserStore()
  // 判断是否有token
  if (store.token) {
    // 有token放行
    next()
  } else {
    // 是否在白名单内
    if (WHITE_LIST.includes(to.path)) {
      next()
    } else {
      // 不在白名单内 跳转到登录页
      next('/login')
      ElMessage.warning('登录信息无效,请先登录')
    }
  }
})
